<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <!-- 
    变异方法:变异方法具有响应式功能，可以直接对数据进行修改，并响应视图，就是说使用这些方法对data
    中的数据修改以后，能够直接触发视图更新
    push() pop() shift() unshift() splice() sort() reverse()

    替换数组：不会触发视图更新，会产生一个新的数组，需要把新的数组赋值给data中的数据，视图才会更新
    filter() concat()  slice()
   -->
  <div id="app">
    <p v-for='(item,index) in arr' :key='index'>{{item}}</p>
    <button @click='handle'>变异</button>
    <button @click='handle1'>替换</button>
  </div>
  <script src="../vue.js"></script>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        arr: ['tom', 'jerry', 'spike']
      },
      methods: {
        handle() {
          // 变异方法：直接对数据修改
          this.arr.push('paike')
        },
        handle1() {
          // 替换方法：把数据赋值给它才能视图更新
          this.arr = this.arr.slice(0, 2)
        }
      }
    })
  </script>
</body>

</html>